ARG PHP_VERSION
FROM php:${PHP_VERSION}

ARG LANG
ENV LANG=C.UTF-8

# 镜像源地址根据版本需要修改地址
# PHPIZE_DEPS 包含 gcc g++ 等编译辅助类库，完成编译后删除
RUN echo 'https://mirrors.aliyun.com/alpine/v3.16/main/' > /etc/apk/repositories \
    && echo 'https://mirrors.aliyun.com/alpine/v3.16/community/' >> /etc/apk/repositories  \
    && apk add --no-cache $PHPIZE_DEPS \
    && apk add --no-cache libstdc++ libzip-dev vim nginx \
    && apk update \
    # 7.4 版本及以上
    && pecl install redis \
    # 7.4 版本以下
    #&& pecl install redis-5.3.7 \
    && pecl install zip \
    && docker-php-ext-enable redis zip \
    && apk del $PHPIZE_DEPS

# docker-php-ext-install 指令已经包含编译辅助类库的删除逻辑
RUN apk add --no-cache freetype libpng libjpeg-turbo freetype-dev libpng-dev libjpeg-turbo-dev \
    && apk update \
    # 7.4 版本及以上构建 gd 库
    && docker-php-ext-configure gd --with-freetype=/usr/include/ --with-jpeg=/usr/include/ \
    # 7.3 版本及以下构建 gd 库
    #&& docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
    && docker-php-ext-install -j$(nproc) gd \
    && docker-php-ext-install -j$(nproc) pdo_mysql \
    && docker-php-ext-install -j$(nproc) opcache \
    && docker-php-ext-install -j$(nproc) bcmath \
    && docker-php-ext-install -j$(nproc) mysqli \
    && docker-php-ext-install -j$(nproc) pcntl

RUN addgroup -g 1000 -S www \
    && adduser -s /sbin/nologin -S -D -u 1000 -G www www \
    && sed -ri "s/user.*=.*www-data/user = www/g" /usr/local/etc/php-fpm.d/www.conf \
    && sed -ri "s/group.*=.*www-data/group = www/g" /usr/local/etc/php-fpm.d/www.conf

RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini" \
    # PHP 7.2 版本及以上
    && curl -o /usr/bin/composer https://getcomposer.org/download/latest-stable/composer.phar \
    # PHP 7.1 版本及以下
    #&& curl -o /usr/bin/composer https://getcomposer.org/download/latest-2.2.x/composer.phar \
    && chmod +x /usr/bin/composer \
    && /usr/bin/composer config -g repo.packagist composer https://mirrors.aliyun.com/composer
